package com.gitee.l0km.codegen.base;

import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;

public class CreateInterfaceOptions implements CreateInterfaceSourceConstants,DuplicatedConstants {
	private Options options = new Options();
	private final CreateInterfaceOptions instance = new CreateInterfaceOptions();

	/**
	 * 
	 */
	protected CreateInterfaceOptions() {
		options.addOption(HELP_OPTION, HELP_OPTION_LONG, false, HELP_OPTION_DESC);
		options.addOption(Option.builder(INTERFACE_CLASS_OPTION).longOpt(INTERFACE_CLASS_OPTION_LONG)
				.desc(INTERFACE_CLASS_OPTION_DESC).numberOfArgs(1).type(Class.class).required().build());
		options.addOption(Option.builder(REFERENCE_CLASS_OPTION).longOpt(REFERENCE_CLASS_OPTION_LONG)
				.desc(REFERENCE_CLASS_OPTION_DESC).numberOfArgs(1).type(Class.class).build());
		options.addOption(Option.builder(BASE_CLASS_OPTION).longOpt(BASE_CLASS_OPTION_LONG).desc(BASE_CLASS_OPTION_DESC)
				.numberOfArgs(1).type(Class.class).build());
		options.addOption(Option
				.builder(PACKAGE_OPTION)
				.longOpt(PACKAGE_OPTION_LONG)
				.desc(PACKAGE_OPTION_DESC)
				.numberOfArgs(1).required().build());
	}

	/**
	 * @return instance
	 */
	public CreateInterfaceOptions getInstance() {
		return instance;
	}

	/**
	 * @return options
	 */
	public Options getOptions() {
		return options;
	}

}
